Logistic Regression একটি জনপ্রিয় Supervised Learning অ্যালগরিদম, যা Classification সমস্যার সমাধান করতে ব্যবহৃত হয়। এটি একটি লিনিয়ার মডেল হলেও আউটপুট হিসেবেও একটি সিগময়েড (sigmoid) ফাংশন ব্যবহার করে, যা প্রেডিকশনকে একটি সম্ভাবনা (probability) হিসেবে রূপান্তরিত করে এবং সেই অনুযায়ী ক্লাস (যেমন, 0 অথবা 1) প্রদান করে।
এখানে Python দিয়ে একটি Logistic Regression মডেল তৈরি করার উদাহরণ দেওয়া হলো।
১. ডেটাসেট লোড এবং প্রাথমিক প্রস্তুতি
আমরা Iris dataset ব্যবহার করব, যা একটি জনপ্রিয় ডেটাসেট, যেখানে বিভিন্ন ফুলের প্রকারভেদ ক্লাসিফিকেশন করা হয়। তবে, এখানে আমরা দুটি শ্রেণী (setosa এবং versicolor) নিয়ে কাজ করব, যেহেতু Logistic Regression মূলত বাইনারি ক্লাসিফিকেশন সমস্যার জন্য ব্যবহার হয়।
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
import numpy as np
# Iris dataset লোড করা
iris = load_iris()
X = iris.data
y = iris.target
# 0 এবং 1 শ্রেণীর ডেটা (setosa এবং versicolor) নেবো
X = X[y != 2]
y = y[y != 2]
# ডেটাসেটটিকে ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
২. Logistic Regression মডেল তৈরি এবং প্রশিক্ষণ
এখন আমরা LogisticRegression ক্লাস ব্যবহার করে মডেল তৈরি করব এবং প্রশিক্ষণ দেব।
# Logistic Regression মডেল তৈরি করা
log_reg = LogisticRegression()
# মডেলটিকে ট্রেনিং ডেটা দিয়ে প্রশিক্ষণ দেয়া
log_reg.fit(X_train, y_train)
৩. মডেল দিয়ে পূর্বাভাস (Prediction) করা
এখন, প্রশিক্ষিত মডেল ব্যবহার করে আমরা টেস্ট ডেটাতে পূর্বাভাস করতে পারব।
# টেস্ট ডেটাতে পূর্বাভাস করা
y_pred = log_reg.predict(X_test)
# ফলাফল দেখা
print("Predicted Labels:", y_pred)
print("Actual Labels:", y_test)
৪. মডেল মূল্যায়ন (Model Evaluation)
আমরা এখন মডেলটির কার্যকারিতা মূল্যায়ন করব। এর জন্য accuracy_score, confusion_matrix, এবং classification_report ব্যবহার করা হবে।
# মডেল accuracy চেক করা
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
# Confusion Matrix দেখানো
conf_matrix = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:\n", conf_matrix)
# Classification Report দেখানো
class_report = classification_report(y_test, y_pred)
print("Classification Report:\n", class_report)
৫. ফলাফল বিশ্লেষণ
এটি মডেলের পারফরম্যান্স সম্পর্কে বিস্তারিত ফলাফল সরবরাহ করবে। Confusion Matrix দেখাবে সঠিক এবং ভুল শ্রেণীকরণের সংখ্যা, এবং Classification Report পারফরম্যান্সের জন্য Precision, Recall, এবং F1-score দেখাবে।
উদাহরণ আউটপুট:
Accuracy: 1.0
Confusion Matrix:
[[15 0]
[ 0 15]]
Classification Report:
precision recall f1-score support
0 1.00 1.00 1.00 15
1 1.00 1.00 1.00 15
accuracy 1.00 30
macro avg 1.00 1.00 1.00 30
weighted avg 1.00 1.00 1.00 30
এখানে accuracy 1.0, অর্থাৎ আমাদের মডেলটি 100% সঠিকভাবে পূর্বাভাস দিয়েছে।
সারাংশ
Logistic Regression একটি সোজা, তবে শক্তিশালী ক্লাসিফিকেশন অ্যালগরিদম যা আমাদেরকে বাইনারি ক্লাসিফিকেশন সমস্যা সমাধানে সাহায্য করে। আমরা এখানে LogisticRegression মডেলটি তৈরি করে সেটি প্রশিক্ষণ, পূর্বাভাস এবং মূল্যায়ন করেছি। এই পদ্ধতি মেশিন লার্নিং প্রকল্পে সাধারণত ব্যবহৃত হয় এবং সহজেই ক্লাসিফিকেশন সমস্যা সমাধানে ব্যবহৃত হতে পারে।